<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
/*  
2. 编写函数map(arr) 把数组中的每一位数字都增加30%，并返回一个新数组

   ```javascript
   var arr = [10, 100, 1000]
   
   function map() {
     // code in here ...
   }
   

*/

// 封装 map 函数：
  //  「封装」的意思：将 代码 放到 函数体内，以便  重复执行。
  // 「映射」规则：每个 数字，翻倍
function map(arr) {
  arr.forEach(function(item, index) {
    arr[index] = item * 2; // 改 arr 中的每个元素的值
      // 更改规则：  item * 2
  })
  return arr;
}

// console.log(map([1, 2, 3, 4, 5, 1000]))


// ------- 数组的迭代方法 ：  map
var arr = [1, 2, 3, 4, 5, 1000];

var result = arr.map(function(item, index) {
  return item * 3;
});

console.log('result', result);
console.log('arr', arr);


/* arr.map(callback)
  作用：对 数组的每个元素，进行「映射」 - map
    映射规则，封装 callback 的函数体内。
      callback 的返回值，是该数组对应位置的 结果值。
  注：map 不改变 变量本来的值。
    新的结果值(数据) 被 map 返回。
*/
</script>